package com.qijian.business.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qijian.common.annotation.Excel;
import com.qijian.common.core.domain.BaseEntity;

/**
 * 开票计划对象 sm_plan_invoice
 *
 * @author qijian
 * @date 2021-09-13
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString
@TableName("sm_plan_invoice")
public class PlanInvoice extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 唯一id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "唯一id")
    private Long id;

    private Long contractSalesId;

    /**
     * 开票时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开票时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "开票时间")
    private Date invoiceTime;

    @Excel(name = "开票金额")
    @ApiModelProperty(value = "应开票金额")
    private BigDecimal invoiceAmount;

    @Excel(name = "未开票金额")
    @ApiModelProperty(value = "未开票金额")
    private BigDecimal notInvoiceAmount;

    /**
     * 比率
     */
    @Excel(name = "比率")
    @ApiModelProperty(value = "比率")
    private BigDecimal rate;

    /**
     * 开票内容
     */
    @Excel(name = "开票内容")
    @ApiModelProperty(value = "开票内容")
    private String content;

    /**
     * 收货联系人id
     */
    @Excel(name = "收货联系人id")
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "收货联系人id")
    private Long deliveryContactId;

    /**
     * 收货联系人名称
     */
    @Excel(name = "收货联系人名称")
    @ApiModelProperty(value = "收货联系人名称")
    private String deliveryContactName;

    /**
     * 收货联系人固话
     */
    @Excel(name = "收货联系人固话")
    @ApiModelProperty(value = "收货联系人固话")
    private String deliveryContactPhone;

    /**
     * 收货省份
     */
    @ApiModelProperty(value = "收货地区")
    private String deliveryRegion;

    /**
     * 收货详细地址
     */
    @Excel(name = "收货详细地址")
    @ApiModelProperty(value = "收货详细地址")
    private String deliveryAddress;

}
